package cn.tqfeiyang.smartadmin.commons.security;

import cn.tqfeiyang.smartadmin.system.response.MenuQueryVO;
import cn.tqfeiyang.smartadmin.system.response.PermissionQueryVO;
import cn.tqfeiyang.smartadmin.system.response.RoleQueryVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 用户详情
 *
 * @author tqfeiyang
 * @since 2024-08-23
 */
@Data
public class UserDetails {

    /**
     * 用户id
     */
    @Schema(description = "用户id")
    private Long userId;

    /**
     * 用户名称
     */
    @Schema(description = "用户名称")
    private String username;

    /**
     * 昵称
     */
    @Schema(description = "昵称")
    private String nickname;

    /**
     * 电子邮件
     */
    @Schema(description = "电子邮件")
    private String email;

    /**
     * 电话
     */
    @Schema(description = "电话")
    private String phone;

    /**
     * 是否有效？
     */
    @Schema(description = "是否有效？")
    private Boolean status;

    /**
     * 是否管理员？
     */
    @Schema(description = "是否管理员？")
    private Boolean admin;

    /**
     * 注册时间
     */
    @Schema(description = "注册时间")
    private LocalDateTime registrationTime;

    /**
     * 上次登录时间
     */
    @Schema(description = "上次登录时间")
    private LocalDateTime lastLoginTime;






    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private LocalDateTime updateTime;

    /**
     * 角色列表
     */
    @Schema(description = "角色列表")
    private List<RoleQueryVO> roleList;

    /**
     * 权限列表
     */
    @Schema(description = "权限列表")
    private List<PermissionQueryVO> permissionList;

    /**
     * 菜单列表
     */
    @Schema(description = "菜单列表")
    private List<MenuQueryVO> menuList;

}